Field of the Invention
This invention relates to systems and methods for more effectively reclaiming space in space-efficient FlashCopy volumes.
Background of the Invention
On storage systems such as the IBM DS8000™ enterprise storage system, FlashCopy is a function used to create nearly instantaneous point-in-time copies of volumes or data sets. These point-in-time copies may be used for backups and other purposes. Once created, the point-in-time copies are immediately available for both read and write access. Space Efficient FlashCopy is a function similar to conventional FlashCopy except that space-efficient volumes created with this function are not allocated all their defined storage space at the time of creation. Rather, storage space is allocated when data is actually written to a space-efficient volume. This allows the space-efficient volumes to be thinly provisioned, which reduces the amount of physical storage space needed to back the space-efficient volumes. Space Efficient FlashCopy achieves the aforementioned space efficiency by pooling physical storage requirements of many space-efficient volumes in a common repository. A mapping structure is used to keep track of where the space-efficient volumes' data is physically located within the repository.
While physical storage space may be allocated to space-efficient volumes when needed, the same physical storage space may be reclaimed from the space-efficient volumes when it is no longer needed. Currently, when tracks are deleted by host-system-based software, the DS8000™ storage controller relies on updates to its metadata to release the tracks from a space-efficient volume. More specifically, the DS8000™ storage controller relies on certain metadata associated with the tracks to be overwritten with zeros or marked to indicate that the tracks need to be removed from the space-efficient volume. This metadata is later scanned by the storage controller to identify which tracks should be removed. Once identified, the storage controller may add the tracks to a free storage pool to be used for future allocations. Over time, events such as errors or miscommunications may occur which may result in the required metadata not being zeroed out correctly. For example, if software on a host system deletes a data set or particular tracks of a data set, the software on the host system may notify the storage controller so that the storage controller can release the tracks back into the free storage pool. If the notifications from the software are lost or not properly registered or handled by the storage controller, the tracks may not be released back into the free storage pool. Over time this may result in storage space in the storage system that is not utilized, but nevertheless tied up and unavailable for use.
In view of the foregoing, what are needed are systems and methods to more effectively reclaim space in space-efficient point-in-time-copy volumes. Ideally, such systems and methods will prevent situations where tracks, even though deleted or marked as unused by a host system, are not released to a free storage pool by the storage controller.